﻿/**
 * Create in 2012-3-16 下午3:10:48.
 */
package kit4j.generator.keyed;

import java.util.Random;

import kit4j.common.lang.IntegerBound;

/**
 * 可指定范围边界的Integer类型数值生成器。
 * 
 * @author MiniKnife
 * 
 */
public class RandomIntegerKeyedGenerator implements
		IKeyedGenerator<IntegerBound, Integer> {

	private Random rand;

	/**
	 * 创建一个数值生成器。
	 */
	public RandomIntegerKeyedGenerator() {
		rand = new Random(System.currentTimeMillis());
	}

	/**
	 * 生成一个随机Integer数值，数值最小的可能值为指定IntegerBound的最小值，最大的可能值为指定IntegerBound的最大值 。
	 * 
	 * @see kit4j.generator.keyed.IKeyedGenerator#next(java.lang.Object)
	 */
	@Override
	public Integer next(IntegerBound bound) {
		int minValue = bound.getMinValue().intValue();
		int maxValue = bound.getMaxValue().intValue();
		int value = rand.nextInt(maxValue - minValue + 1);

		value += minValue;

		return value;
	}

}
